表1 TTCリファレンスマニュアル ・――――――――――――――――――――――――――――――――・ |■構文規則                           | |プログラム                           | |・文法はほぼtiny BASICと同様                  | |・ラベルは0〜1023の範囲で必要なところだけつける        | |・コマンドとラベルのあいだは1個のスペースで区切る       | |・ステートメント間のセパレータはスペース            | |・セミコロン以下の1行は注釈とみなされる            | |・ステートメントと式のあいだはスペースでくぎる         | |                                | |式                               | |・ひとつの項、もしくは複数の項を2項演算子でつないだもの    | |・演算はすべて符号なし8ビットで行われる。           | | また、オバーフローのチェックはしない             | |・負数は2の補数または、0−のかたちで表現する         | |・演算は優先順位がないので、左から順番に行われる。       | | また、括弧を使うことはできない                | |                                | |項                               | |・定数、変数、関数                       | |                                | |■定数                             | |10進数                             | |・取りうる値は、0〜 255。                   | |  255以上の値は、 256で割った余りが値となる          | |                                | |16進数                             | |・先頭に$をつけて表す。値の範囲は00H〜FFH。         | | 必ず2桁で表すこと                      | |                                | |文字定数                            | |・シングルクォーテーションを先頭とする             | | 1文字の ASCIIコードを値とする                | |                                | |■変数                             | |1文字変数                           | |・A、B……Zの1文字で表される変数              | |                                | |特集変数                            | |・[と]の2つで、WIND命令で表される番地をアクセスする     | |                                | |■演算子                            | |2項演算子                           | |・加減乗除剰余記号、比較演算子、論理演算子がある        | |                                | |加減乗除剰余記号                        | |・それぞれ、+、−、*、/、¥である              | |                                | |比較演算子                           | |・=、#(<>のこと)、>、<                  | |・真のとき1、偽のとき0を値とする               | |                                | |倫理演算子                           | |・AND、OR、XOR、の3種があり、それぞれ、&、;、!で表す    | |                                | |■ステートメント                        | | .(ピリオド)                         | | .変数名=式                         | |・左辺の項に右辺の式の値を代入する。 BASICの LET文と同じ    | |                                | |INC                             | | INC 1文字変数                        | |・変数の値に1を加える。機械語と同じキャリは立たない      | |                                | |DEC                             | | DEC 1文字変数                        | |・変数の値に−1を加える                    | |                                | |ADC                             | | ADC 1文字変数                        | |・キャリフラグの値を加える                   | | 具体的には、                         | |  .B=0 .A=A+1 ADC B                      | | とすると、A=255のとき、B=1となる           | |                                | |GOTO                            | | GOTO ラベル                          | |・指定行へ分岐する。                      | | コマンドとラベルのあいだのスペースは1個だけ         | |                                | |GOSUB                           | | GOSUB ラベル                         | |・サブルーチンを呼び出す                    | |                                | |RETURN                          | | RETURN                            | |・GOSUBに対応する RETURN。または、 BASICの END文        | |                                | |IF                              | | IF 式,ラベル                         | |・式の値が0以外(要するに真)ならば、指定行へ分岐する     | |                                | |REPEAT〜UNTIL                    | | REPEAT                            | | UNTIL 式                           | |・式の値が1になるまで、                    | | REPEATと UNTILのあいだのプログラムを繰り返す。        | | なお、途中でGOTOなどで抜け出してもかまわない         | |                                | |END                             | | END                              | |・この命令によってコンパイルを終了する             | |                                | |”str”                           | |・ダブルクォーテーションで囲まれた文字列をそのまま出力する   | |                                | |’str’                           | |・シングルクォーテーションで囲まれた文字列を          | | コントロールコードとして出力する               | |  D ……カーソルを下へ1文字分移動              | |  U ……カーソルを上へ1文字分移動              | |  R ……カーソルを右へ1文字分移動              | |  L ……カーソルを左へ1文字分移動              | |  C ……画面をクリア                     | |  / ……改行する                       | |                                | |PRT1                            | | PRT1 式1,式2                        | |・式の値を10進右詰め3桁で出力する               | |                                | |PRT2                            | | PRT2 式1,式2                        | |・式1を上位バイト、式2を下位バイトとみなした         | | 2バイトの値を10進右詰め5桁で出力する            | |                                | |HEX2                            | | HEX2 式                            | |・式の値を16進2桁で出力する                  | |                                | |HEX4                            | | HEX4 式1,式2                        | |・式1を上位バイト、式2を下位バイトとみなして、        | | 16進4桁で出力する                      | |                                | |CHR                             | | CHR 式                            | |・式の値の ASCIIコードを出力する                | |                                | |WIDCH                           | | WIDCH 式                           | |・画面の桁数を指定する                     | |                                | |LOCATE                          | | LOCATE 式1,式2                       | |・式1をX座標、式2をY座標とする位置へ            | | カーソルを移動する                      | |                                | |BELL                            | | BELL 式                            | |・式の回数だけビープ音を鳴らす                 | |                                | |WIND1                           | | WIND1 式1,式2                        | |・特殊変数[がアクセスする番地を決める。            | | 式1が上位バイト、式2が下位バイトを表す           | |                                | |WIND2                           | | WIND2 式1,式2                        | |・特殊変数]がアクセスする番地を決める。WIND1と同様       | |                                | |CALL                            | | CALL 式1,式2                        | |・式1を上位バイト、式2を下位バイトとする           | | アドレスの機械語サブルーチンをコールする           | |                                | |DB                              | | DB 定数,定数,……                       | |・定数(10進と16進のみ)をそのままメモリに落とす。       | |                                | |DW                              | | DW 定数,定数,……                       | |・定数(10進と16進のみ)をそのままメモリに落とす。       | | アセンブラのDWと同様。                    | | なお、この命令のみ、10進数は、0〜 65535、          | | 16進数は、0000H〜FFFFHの4桁になる。            | | また、/ ラベルと書くことにより                | | そのラベルが示すアドレスがメモリに落ちる           | |                                | |DM                              | | DM "str"                           | |・ダブルクォーテーションに囲まれた文字列を           | | そのままメモリい落とす                    | | アセンブラのDMと同様                     | |                                | |PUTA                            | | PUTA 式                            | |・式の値をAcc与える                     | |                                | |GETA                            | | GETA 変数                           | |・Accの値を変数に与える                   | |                                | |PUTDE                           | | PUTDE 式1,式2                        | |・式1の値をDレジスタに、式2の値をEレジスタに与える     | |                                | |GETDE                           | | GETDE 変数1,変数2                      | |・Dレジスタの値を変数1、Eレジスタの値を変数2に与える    | |                                | |■関数                             | |(I                              | | (                               | |・キーが押されるのを持って1文字入力し、            | | その ASCIIコードを値とする                  | |                                | |(G                              | | (G                              | |・リアルタイムキー入カ。                    | | どのキーも押されていないならば0、              | | なにかのキーが押されていれば、                | | その ASCIIコードを値とする                  | |                                | |(F                              | | (F                              | |・カーソルを点滅させて1文字入力する              | |                                | |(R                              | | (R                              | |・0〜 255までの乱数を返す                   | |                                | |(X                              | | (X                              | |・カーソルのX座標を値とする                  | |                                | |(Y                              | | (Y                              | |・カーソルのY座標を値とする                  | |                                | |%R                              | | 式%R                             | |・式の値を1ビット分、右にずらす                | |                                | |%L                              | | 式%L                             | |・式の値を1ビット分、左にずらす                | |                                | |                                | ・――――――――――――――――――――――――――――――――・ 表2 エラーメッセージ表 ・―――――――――――――――――――――――――――・ |                           | | SYNTAX ERROR                    | |  ステートメントの記述がおかしい          | |                           | | ILLEGAL FUNCTION CALL                | |  式の記述がおかしい                | |                           | | UNDEFUNED LABEL                   | |  分岐先の行が見あたらない             | |                           | | OUT OF LABEL                    | |  ラベルが1023を超えた               | |                           | | NO END ERROR                    | |  END 文がない                   | |                           | | BAD REPEAT                     | |  REPEATループのネスティングが16重を超えた     | |                           | ・―――――――――――――――――――――――――――・